package com.ruoyi.zcxt.service;

import java.util.List;
import com.ruoyi.zcxt.domain.ZcKjSubjects;

/**
 * 资产用途（树）Service接口
 * 
 * @author ruoyi
 * @date 2024-01-05
 */
public interface IZcKjSubjectsService 
{
    /**
     * 查询资产用途（树）
     * 
     * @param sId 资产用途（树）主键
     * @return 资产用途（树）
     */
    public ZcKjSubjects selectZcKjSubjectsBySId(Long sId);

    /**
     * 查询资产用途（树）列表
     * 
     * @param zcKjSubjects 资产用途（树）
     * @return 资产用途（树）集合
     */
    public List<ZcKjSubjects> selectZcKjSubjectsList(ZcKjSubjects zcKjSubjects);

    /**
     * 新增资产用途（树）
     * 
     * @param zcKjSubjects 资产用途（树）
     * @return 结果
     */
    public int insertZcKjSubjects(ZcKjSubjects zcKjSubjects);

    /**
     * 修改资产用途（树）
     * 
     * @param zcKjSubjects 资产用途（树）
     * @return 结果
     */
    public int updateZcKjSubjects(ZcKjSubjects zcKjSubjects);

    /**
     * 批量删除资产用途（树）
     * 
     * @param sIds 需要删除的资产用途（树）主键集合
     * @return 结果
     */
    public int deleteZcKjSubjectsBySIds(Long[] sIds);

    /**
     * 删除资产用途（树）信息
     * 
     * @param sId 资产用途（树）主键
     * @return 结果
     */
    public int deleteZcKjSubjectsBySId(Long sId);

    void updateKjSubjectsChildren(Long sId, String newAncestors, String oldAncestors);

    void updateParentKjSubjectsStatusNormal(ZcKjSubjects kjSubjects);

    /**
     *  根据ID查询所有子分类（正常状态）
     * @param sId 分类id
     * @return 子分类个数（正常状态）
     */
    public int selectNormalChildrenKjSubjectsById(Long sId);

    /**
     * 是否存在分类子节点
     * @param sId
     * @return 结果
     */
    public boolean hasChildBysId(Long sId);
}
